package com.yitao.cms.dto.overseasLogistics;

import com.skipper.base.dto.BaseDto;
import com.yitao.cms.enums.OverseasLogisticsEnums;
import com.yitao.cms.model.overseasLogistics.OverseasProductInfoModel;
import com.yitao.cms.utils.DateUtils;
import io.swagger.annotations.ApiModelProperty;

import javax.persistence.Column;
import java.util.Date;
import java.util.List;


/**
 * @Author: wwl
 * @Date: 2019/4/9 11:45
 * @Description:
 */
public class OverseasLogisticsP3InfoDto extends BaseDto {

    private  String id;
    //海外仓库编号"ORB"
    private String wareHouseId;
    private String username;
    private String password;

    /**
     * 境外快递单号(必填)
     */
    @ApiModelProperty("境外快递单号")
    private String overseaExpressNo;
    /**
     * 电商平台订单号(必填)
     */
    @ApiModelProperty("电商平台订单号")
    private String merchantOrderNo;
    /**
     * 买手姓名
     */
    @ApiModelProperty("买手姓名")
    private String roller;
    /**
     * 电商平台下单时间
     */
    @ApiModelProperty("电商平台下单时间")
    private Date clientCreateOrderDate;
    /**
     * 电商平台下单时间(装换)
     */
    @ApiModelProperty("电商平台下单时间")
    private String clientCreateOrderDateStr;

    /**
     * 订单来源
     */
    @ApiModelProperty("订单来源")
    private String orderSource;
    /**
     * 内部订单号
     */
    @ApiModelProperty("内部订单号")
    private String customerRefNo;
    /**
     * 合箱箱号
     */
    @ApiModelProperty("合箱箱号")
    private String tanksNo;
    /**
     * 商品原始名
     */
    @ApiModelProperty("商品原始名")
    private String name;
    /**
     * 商品中文名
     */
    @ApiModelProperty("商品中文名")
    private String cnyName;
    /**
     * 电商平台商品id
     */
    @ApiModelProperty("电商平台商品id")
    private String skuId;
    /**
     * 商品UPC码
     */
    @ApiModelProperty("商品UPC码")
    private String upc;
    /**
     * 商品分类描述
     */
    @ApiModelProperty("商品分类描述")
    private String category;
    /**
     * 商品品牌
     */
    @ApiModelProperty("商品品牌")
    private String brand;
    /**
     * 商品规格
     */
    @ApiModelProperty("商品规格")
    private String spec;
    /**
     * 币种
     */
    @ApiModelProperty("币种")
    private String priceUnit;
    /**
     * 原币单价
     */
    @ApiModelProperty("原币单价")
    private String declaredPrice;
    /**
     * 商品数量
     */
    @ApiModelProperty("商品数量")
    private Integer count;
    /**
     * 物流服务商
     */
    @ApiModelProperty("物流服务商")
    private String logisticsProviders;
    /**
     * 物流服务商单号
     */
    @ApiModelProperty("物流服务商单号")
    private String transferId;
    /**
     * 发货人姓名
     */
    @ApiModelProperty("发货人姓名")
    private String senderName;
    /**
     * 国内发件人地址，包括省市区
     */
    @ApiModelProperty("国内发件人地址")
    private String senderDetailaddress;
    /**
     * 国内发件人电话
     */
    @ApiModelProperty("国内发件人电话")
    private String senderMobile;
    /**
     * 买家(收货人)姓名
     */
    @ApiModelProperty("买家(收货人)姓名")
    private String buyerName;
    /**
     * 买家(收货人)身份证号码
     */
    @ApiModelProperty("买家(收货人)身份证号码")
    private String buyerIdcard;
    /**
     * 买家(收货人)身份证照片正面
     */
    @ApiModelProperty("买家(收货人)身份证照片正面")
    private String buyerIdcardFrontend;
    /**
     * 买家(收货人)身份证照片背面
     */
    @ApiModelProperty("买家(收货人)身份证照片背面")
    private String buyerIdcardBackend;
    /**
     * 买家(收货人)手机号码
     */
    @ApiModelProperty("买家(收货人)手机号码")
    private String buyerMobile;
    /**
     * 买家(收货人)省份
     */
    @ApiModelProperty("买家(收货人)省份")
    private String buyerProvince;
    /**
     * 买家(收货人)城市
     */
    @ApiModelProperty("买家(收货人)城市")
    private String buyerCity;
    /**
     * 买家(收货人)行政区
     */
    @ApiModelProperty("买家(收货人)行政区")
    private String buyerDistrict;
    /**
     * 买家(收货人)详细地址
     */
    @ApiModelProperty("买家(收货人)详细地址")
    private String buyerAdress;
    /**
     * 买家邮编
     */
    @ApiModelProperty("买家邮编")
    private String buyerZipcode;
    /**
     * 国内快递
     */
    @ApiModelProperty("国内快递")
    private String inlandExpressId;
    /**
     * 国内运单号
     */
    @ApiModelProperty("国内运单号")
    private String inlandExpressNo;
    /**
     * 包裹状态
     */
    @ApiModelProperty("入库状态")
    private Integer p2Status;
    /**
     * 包裹状态
     */
    @ApiModelProperty("入库状态(中文)")
    private String p2StatusStr;
    /**
     * 包裹状态
     */
    @Column(name = "发货状态")
    private Integer p4Status;
    @Column(name = "发货状态")
    private String p4StatusStr;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String message;
    /**
     * 转运仓入库时间
     */
    @ApiModelProperty("转运仓入库时间")
    private Date overseaInTime;
    @ApiModelProperty("转运仓入库时间")
    private String overseaInTimeStr;

    /**
     * 出库时间
     */
    @ApiModelProperty("出库时间")
    private Date overseaOutTime;
    @ApiModelProperty("出库时间")
    private String overseaOutTimeStr;
    /**
     * 抵达国内时间
     */
    @ApiModelProperty("抵达国内时间")
    private Date inlandInTime;
    @ApiModelProperty("抵达国内时间")
    private String inlandInTimeStr;
    /**
     * 已转国内快递时间
     */
    @ApiModelProperty("已转国内快递时间")
    private Date inlandOutTime;
    @ApiModelProperty("已转国内快递时间")
    private String inlandOutTimeStr;
    /**
     * 用户签收时间
     */
    @ApiModelProperty("用户签收时间")
    private Date buyerSignTime;
    @ApiModelProperty("用户签收时间")
    private String buyerSignTimeStr;

    /**
     * 是否被删除
     */
    @ApiModelProperty("是否被删除")
    private Boolean isDelete;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;
    @ApiModelProperty("创建时间")
    private String createTimeStr;
    /**
     * create_by	创建人
     *
     * @mbggenerated
     */
    @ApiModelProperty("创建人")
    private Long createBy;
    /**
     * 创建时间
     */
    @Column(name = "last_update_time",columnDefinition = "DateTime")
    private Date lastUpdateTime;
    /**
     * create_by	创建人
     *
     * @mbggenerated
     */
    @Column(name = "last_update_by",columnDefinition = "BIGINT")
    private Long lastUpdateBy;

    private List<OverseasProductInfoDto> goodsList;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getOverseaExpressNo() {
        return overseaExpressNo;
    }

    public void setOverseaExpressNo(String overseaExpressNo) {
        this.overseaExpressNo = overseaExpressNo;
    }

    public String getMerchantOrderNo() {
        return merchantOrderNo;
    }

    public void setMerchantOrderNo(String merchantOrderNo) {
        this.merchantOrderNo = merchantOrderNo;
    }

    public String getRoller() {
        return roller;
    }

    public void setRoller(String roller) {
        this.roller = roller;
    }

    public void setClientCreateOrderDate(Date clientCreateOrderDate) {
        this.clientCreateOrderDate = clientCreateOrderDate;
    }

    public Date getClientCreateOrderDate() {
        return clientCreateOrderDate;
    }

    public String getOrderSource() {
        return orderSource;
    }

    public void setOrderSource(String orderSource) {
        this.orderSource = orderSource;
    }

    public String getCustomerRefNo() {
        return customerRefNo;
    }

    public void setCustomerRefNo(String customerRefNo) {
        this.customerRefNo = customerRefNo;
    }

    public String getTanksNo() {
        return tanksNo;
    }

    public void setTanksNo(String tanksNo) {
        this.tanksNo = tanksNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCnyName() {
        return cnyName;
    }

    public void setCnyName(String cnyName) {
        this.cnyName = cnyName;
    }

    public String getSkuId() {
        return skuId;
    }

    public void setSkuId(String skuId) {
        this.skuId = skuId;
    }

    public String getUpc() {
        return upc;
    }

    public void setUpc(String upc) {
        this.upc = upc;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getSpec() {
        return spec;
    }

    public void setSpec(String spec) {
        this.spec = spec;
    }

    public String getPriceUnit() {
        return priceUnit;
    }

    public void setPriceUnit(String priceUnit) {
        this.priceUnit = priceUnit;
    }

    public String getDeclaredPrice() {
        return declaredPrice;
    }

    public void setDeclaredPrice(String declaredPrice) {
        this.declaredPrice = declaredPrice;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public String getLogisticsProviders() {
        return logisticsProviders;
    }

    public void setLogisticsProviders(String logisticsProviders) {
        this.logisticsProviders = logisticsProviders;
    }

    public String getTransferId() {
        return transferId;
    }

    public void setTransferId(String transferId) {
        this.transferId = transferId;
    }

    public String getSenderName() {
        return senderName;
    }

    public void setSenderName(String senderName) {
        this.senderName = senderName;
    }

    public String getSenderDetailaddress() {
        return senderDetailaddress;
    }

    public void setSenderDetailaddress(String senderDetailaddress) {
        this.senderDetailaddress = senderDetailaddress;
    }

    public String getSenderMobile() {
        return senderMobile;
    }

    public void setSenderMobile(String senderMobile) {
        this.senderMobile = senderMobile;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getBuyerIdcard() {
        return buyerIdcard;
    }

    public void setBuyerIdcard(String buyerIdcard) {
        this.buyerIdcard = buyerIdcard;
    }

    public String getBuyerIdcardFrontend() {
        return buyerIdcardFrontend;
    }

    public void setBuyerIdcardFrontend(String buyerIdcardFrontend) {
        this.buyerIdcardFrontend = buyerIdcardFrontend;
    }

    public String getBuyerIdcardBackend() {
        return buyerIdcardBackend;
    }

    public void setBuyerIdcardBackend(String buyerIdcardBackend) {
        this.buyerIdcardBackend = buyerIdcardBackend;
    }

    public String getBuyerMobile() {
        return buyerMobile;
    }

    public void setBuyerMobile(String buyerMobile) {
        this.buyerMobile = buyerMobile;
    }

    public String getBuyerProvince() {
        return buyerProvince;
    }

    public void setBuyerProvince(String buyerProvince) {
        this.buyerProvince = buyerProvince;
    }

    public String getBuyerCity() {
        return buyerCity;
    }

    public void setBuyerCity(String buyerCity) {
        this.buyerCity = buyerCity;
    }

    public String getBuyerDistrict() {
        return buyerDistrict;
    }

    public void setBuyerDistrict(String buyerDistrict) {
        this.buyerDistrict = buyerDistrict;
    }

    public String getBuyerAdress() {
        return buyerAdress;
    }

    public void setBuyerAdress(String buyerAdress) {
        this.buyerAdress = buyerAdress;
    }

    public String getBuyerZipcode() {
        return buyerZipcode;
    }

    public void setBuyerZipcode(String buyerZipcode) {
        this.buyerZipcode = buyerZipcode;
    }

    public String getInlandExpressId() {
        return inlandExpressId;
    }

    public void setInlandExpressId(String inlandExpressId) {
        this.inlandExpressId = inlandExpressId;
    }

    public String getInlandExpressNo() {
        return inlandExpressNo;
    }

    public void setInlandExpressNo(String inlandExpressNo) {
        this.inlandExpressNo = inlandExpressNo;
    }

    public Integer getP2Status() {
        return p2Status;
    }

    public void setP2Status(Integer p2Status) {
        this.p2Status = p2Status;
    }

    public Integer getP4Status() {
        return p4Status;
    }

    public void setP4Status(Integer p4Status) {
        this.p4Status = p4Status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }


    public String getClientCreateOrderDateStr() {
        return DateUtils.getDateSecondFormat(clientCreateOrderDate);
    }
    public String getP2StatusStr() {
        return OverseasLogisticsEnums.p2Status.getDescByCode(p2Status);
    }



    public String getP4StatusStr() {
        return OverseasLogisticsEnums.p4Status.getDescByCode(p4Status);
    }


    public Date getOverseaInTime() {
        return overseaInTime;
    }

    public void setOverseaInTime(Date overseaInTime) {
        this.overseaInTime = overseaInTime;
    }

    public String getOverseaInTimeStr() {
        return DateUtils.getDateSecondFormat(overseaInTime);
    }


    public Date getOverseaOutTime() {
        return overseaOutTime;
    }

    public void setOverseaOutTime(Date overseaOutTime) {
        this.overseaOutTime = overseaOutTime;
    }

    public String getOverseaOutTimeStr() {
        return DateUtils.getDateSecondFormat(overseaOutTime);
    }


    public Date getInlandInTime() {
        return inlandInTime;
    }

    public void setInlandInTime(Date inlandInTime) {
        this.inlandInTime = inlandInTime;
    }

    public String getInlandInTimeStr() {
        return DateUtils.getDateSecondFormat(inlandInTime);
    }


    public Date getInlandOutTime() {
        return inlandOutTime;
    }

    public void setInlandOutTime(Date inlandOutTime) {
        this.inlandOutTime = inlandOutTime;
    }

    public String getInlandOutTimeStr() {
        return DateUtils.getDateSecondFormat(inlandOutTime);
    }



    public Date getBuyerSignTime() {
        return buyerSignTime;
    }

    public void setBuyerSignTime(Date buyerSignTime) {
        this.buyerSignTime = buyerSignTime;
    }

    public String getBuyerSignTimeStr() {
        return DateUtils.getDateSecondFormat(buyerSignTime);
    }


    public Boolean getDelete() {
        return isDelete;
    }

    public void setDelete(Boolean delete) {
        isDelete = delete;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateTimeStr() {
        return DateUtils.getDateSecondFormat(createTime);
    }

    public Long getCreateBy() {
        return createBy;
    }

    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }

    public Long getLastUpdateBy() {
        return lastUpdateBy;
    }

    public void setLastUpdateBy(Long lastUpdateBy) {
        this.lastUpdateBy = lastUpdateBy;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public List<OverseasProductInfoDto> getGoodsList() {
        return goodsList;
    }

    public void setGoodsList(List<OverseasProductInfoDto> goodsList) {
        this.goodsList = goodsList;
    }

    public String getWareHouseId() {
        return wareHouseId;
    }

    public void setWareHouseId(String wareHouseId) {
        this.wareHouseId = wareHouseId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
